package main

import (
	"fmt"
	"github.com/gin-gonic/gin"
	"net/http"
	"os"
	"os/signal"
	"syscall"
)

func main() {
	// 优雅退出，当我们退出程序的时候应该做的后续处理，有一部分数据没有处理完的时候，可以先处理完再退出
	// 微服务 启动之前 或者 启动之后会做一件事： 将当前的服务的ip地址和端口号注册到注册中心
	// 我们当前的服务停止了以后并没有告知注册中心
	router := gin.Default()

	router.GET("/", func (c *gin.Context){
		c.JSON(http.StatusOK, gin.H{
			"msg": "pong",
		})
	})

	// 采用协程开启服务
	go func() {
		router.Run(":8080")
	}()

	quit := make(chan os.Signal)
	signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
	<-quit

	// 后续处理函数
	fmt.Println("关闭server中...")
	fmt.Println("注销服务....")
}
